package book;

/**
 * Created with IntelliJ IDEA.
 * Description:
 * User: 姚东名
 * Date: 2024-06-22
 * Time: 9:54
 */
public class BookList {
    //把书作为对象：
    private Book[] books = new Book[10];//书架
    private int usedSize;//书本的有效个数

    //书架
    public BookList() {
        this.books[0] = new Book("三国演义", "罗贯中", 10, "小说");
        this.books[1] = new Book("西游记", "吴承恩", 20, "小说");
        this.books[2] = new Book("红楼梦", "曹雪芹", 30, "小说");

        this.usedSize = 3;
    }

    public Book getBook(int pos) {
        return this.books[pos];
    }
    public Book[] getBooks() {
        return books;
    }

    public void setBook(int pos, Book book) {
        this.books[pos] = book;
    }

    public int getUsedSize() {
        return usedSize;
    }

    public void setUsedSize(int usedSize) {
        this.usedSize = usedSize;
    }
}

/*
这段代码包含两个类：`Book` 和 `BookList`。

1. **Book 类**:
   - 描述了书的基本属性，如书名、作者、价格、类型和借阅状态。
   - 提供了构造函数用于初始化这些属性。
   - 提供了getter和setter方法来访问和修改这些属性。
   - 重写了`toString`方法，用于以字符串形式展示书的信息，特别是借阅状态被转换为了中文描述。

2. **BookList 类**:
   - 表示一个书架，可以存放多本书。
   - 使用了一个`Book`类型的数组`books`来存储书，并设置了一个上限为10本书。
   - `usedSize`变量用于跟踪书架上实际存放的书的数量。
   - 构造函数中初始化了书架，放置了三本书，并设置了`usedSize`为3。
   - 提供了方法来获取和设置书架上特定位置的书，以及获取整个书架的书和`usedSize`的值。

逻辑关系:
- `Book`类定义了书的属性和行为。
- `BookList`类使用`Book`对象来构建一个书架，可以管理和操作书架上的书。
- 在`BookList`的构造函数中，创建了三个`Book`对象并放置在书架上。

简而言之，`Book`类代表单本书，而`BookList`类代表一个可以存储多本书的书架，并提供了管理和访问这些书的方法。
 */
